package bean;

import dao.DonoProjetoDAO;
import dao.EstadoDAO;
import dao.UsuarioDAO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.persistence.EntityManager;
import modelo.DonoProjeto;
import modelo.Estado;
import modelo.Projeto;
import modelo.Usuario;
import util.JPAUtil;
import util.JSFUtil;

@ManagedBean
@ViewScoped
public class DonoProjetoBean implements Serializable{

    private DonoProjeto donoProjeto = new DonoProjeto();
    private Estado estadoSelecionado = new Estado();
    @ManagedProperty(value="#{usuarioSessaoBean.usuario}")
    private Usuario usuarioSessao;
    private DonoProjeto donoProjetoPerfil;
    private EntityManager entityManager;
    
    public DonoProjetoBean() {
    	
    }
    
    @PostConstruct
    public void iniciar() {
    	if (usuarioSessao instanceof DonoProjeto) {
    		entityManager = JSFUtil.getEntityManager();
    		UsuarioDAO usuarioDAO = new UsuarioDAO(entityManager);
    		
    		donoProjetoPerfil = new DonoProjetoDAO(entityManager)
    				.consultar(usuarioSessao.getId());
    		
    		estadoSelecionado = donoProjetoPerfil.getCidade().getEstado();
    	}
    }
    

    public void salvar() {
    	
    	if (!donoProjeto.validarConfirmacao()) {
			JSFUtil.addMessage(FacesMessage.SEVERITY_ERROR,"Senhas nao coincidem");
			return;
		}
        
    	//Objeto vindo do filtro (Filter)
        entityManager = JSFUtil.getEntityManager();

        UsuarioDAO usuarioDAO = new UsuarioDAO(entityManager);

        usuarioDAO.inserir(donoProjeto);

       // manager.getTransaction().commit();
        JSFUtil.addMessage("Registro salvo com sucesso");
        //para um novo ser adicionado
        donoProjeto = new DonoProjeto();
    }
    
    
    public void alterar()  {
        entityManager = JSFUtil.getEntityManager();
        
        new DonoProjetoDAO(entityManager).atualizar(donoProjetoPerfil);
         JSFUtil.addMessage("Perfil alterado com sucesso");
    }

    public DonoProjeto getDonoProjeto() {
        return donoProjeto;
    }

    public void setDonoProjeto(DonoProjeto donoProjeto) {
        this.donoProjeto = donoProjeto;
    }

    public Estado getEstadoSelecionado() {
        return estadoSelecionado;
    }

    public void setEstadoSelecionado(Estado estadoSelecionado) {
        this.estadoSelecionado = estadoSelecionado;
    }

	public Usuario getUsuarioSessao() {
		return usuarioSessao;
	}

	public void setUsuarioSessao(Usuario usuarioSessao) {
		this.usuarioSessao = usuarioSessao;
	}

	public DonoProjeto getDonoProjetoPerfil() {
		return donoProjetoPerfil;
	}

	public void setDonoProjetoPerfil(DonoProjeto donoProjetoPerfil) {
		this.donoProjetoPerfil = donoProjetoPerfil;
	}
	
	
	

   
    
    
    

  
	
    
    
    
    
}
